<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Feature Oriented Programming</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Feature_Oriented_Programming"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Feature_Oriented_Programming rootpage-Feature_Oriented_Programming skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Feature Oriented Programming</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><div style="margin:1em auto; border:3px double #EEB422; padding:1em; background:var(--background-color-base, #FFFFFF); color:var(--color-base, #202122); border-radius:1em; font-size: 90%; overflow:hidden; max-width:90%;">
<table>
<tbody><tr>
<td class="noresize">
</td>
<td>Dieser Artikel wurde wegen inhaltlicher Mängel auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem <b>Themengebiet Informatik</b> auf ein akzeptables Niveau zu bringen. Hilf mit, die inhaltlichen Mängel dieses Artikels zu beseitigen, und beteilige dich an der <b>Diskussion!</b> <small>(<span id="NeuerAbschnitt" class=""><a class="external text" href="https://de.wikipedia.org/w/index.php?title=Wikipedia:Redaktion_Informatik/Qualit%C3%A4tssicherung&action=edit&section=new&preload=Vorlage:$1&preloadparams%5B%5D=Bitte+Begr%C3%BCndung+hier+eintragen+und+signieren.&preloadtitle=%5B%5BFeature+Oriented+Programming%5D%5D"><span title="Am Seitenende Abschnitt hinzufügen: Wikipedia:Redaktion Informatik/Qualitätssicherung">+</span></a></span>)</small>
</td></tr></tbody></table>
</div>
<p><b>Feature-orientierte Programmierung</b> (<b>FOP</b>, engl. <i>feature-oriented programming</i>) ist ein Programmierparadigma zur Entwicklung von <a href="Produktlinie_(Software)" title="Produktlinie (Software)">Software-Produktlinien</a>.
</p><p>Grundlage der Feature-orientieren Programmierung sind Softwaremerkmale (Features), die bei Design und Implementierung als Elemente erster Ebene berücksichtigt werden. Features stellen Erweiterungen von Programmfunktionalität dar. Dabei unterscheiden sich Features von <a href="Cross-Cutting_Concern" title="Cross-Cutting Concern">Cross-Cutting Concerns</a> dahingehend, dass sie Anforderungen von Programmnutzern direkt widerspiegeln.
</p>
<div class="mw-heading mw-heading2"><h2 id="Vereinfachung_der_Erstellung_Produktreihen">Vereinfachung der Erstellung Produktreihen</h2></div>
<p>Der Nutzen von FOP ist die Vereinfachung der Erstellung von Produktreihen. Wird immer dasselbe Produkt (z. B. ein CRM) mit jedes Mal abweichenden Anforderungen benötigt, erlaubt FOP das Programmieren der kompletten Produktreihe in einem einheitlichen <a href="Quellcode" class="mw-redirect" title="Quellcode">Quellcode</a>. Ein kundenspezifisches Produkt kann dann anhand einer Parameterisierung der Produktreihe durch Auswählen von Features aus dem FOP-Code generiert werden.
</p>
<div class="mw-heading mw-heading2"><h2 id="Umsetzungsformen">Umsetzungsformen</h2></div>
<p>Heutige Ansätze arbeiten meist mit Template-Systemen, die komplexe Software wie <a href="Customer-Relationship-Management" title="Customer-Relationship-Management">CRM</a>- und <a href="Enterprise-Resource-Planning" title="Enterprise-Resource-Planning">ERP</a>-Systeme zusammensetzen können. Feature Oriented Programming unterscheidet sich von normalen Modul-Systemen dadurch, dass die Ansteuerung der Features feingranularer möglich ist, sowie Features auch Modul-übergreifend sein können.
</p><p>Zur Repräsentation der Features einer Software gibt es sowohl grafische Systeme<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>, die über Checkboxen arbeiten und eine Software mittels einer GUI zusammenstellen lassen, als auch Systeme, die auf der Basis von <a href="Beschreibungslogik" title="Beschreibungslogik">Beschreibungslogiken</a> arbeiten.
</p>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<ul><li><a href="Aspektorientierte_Programmierung" title="Aspektorientierte Programmierung">Aspektorientierte Programmierung</a></li>
<li><a href="Modellgetriebene_Softwareentwicklung" title="Modellgetriebene Softwareentwicklung">Modellgetriebene Softwareentwicklung</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Vorlesung Softwaretechnologie, Uwe Aßmann</span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2022-11-09" href="https://de.wikipedia.org/wiki/?title=Feature_Oriented_Programming&oldid=227819513">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>